package br.gov.dataprev.treinamento.ejb.modelo;


import java.io.Serializable;
import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.MapsId;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name="ITENS_PEDIDOS")
public class ItemPedido implements Serializable {
	
	private static final long serialVersionUID = 1L;


	@EmbeddedId
	private ItemPedidoPK pk;
	

	@MapsId("idPedido")
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="ID_PEDIDO", referencedColumnName="ID_PEDIDO")
	private Pedido pedido;
	
	@MapsId("idProduto")
	@ManyToOne(fetch=FetchType.EAGER)
	@JoinColumn(name="ID_PRODUTO", referencedColumnName="ID_PRODUTO")
	private Produto produto;
	
	@Column(name="QT_PRODUTO")
	private Integer quantidade;

	public ItemPedido() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ItemPedidoPK getPk() {
		return pk;
	}

	public void setPk(ItemPedidoPK pk) {
		this.pk = pk;
	}

	public Pedido getPedido() {
		return pedido;
	}

	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}

	public Produto getProduto() {
		return produto;
	}

	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public Integer getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Integer quantidade) {
		this.quantidade = quantidade;
	}
	
	@Transient
	public BigDecimal getSubtotal() {
		return produto.getValorVenda().multiply(BigDecimal.valueOf(quantidade)).setScale(2, BigDecimal.ROUND_UP);
	}
	
}
